package member.api;

import member.model.shop.MemberAddress;

import java.util.List;

/**
 * Created by xiaoqian on 2016/10/9.
 */
public interface MemberAddressApi {

    /**
     * 查询所有地址信息
     * @param memberId
     * @param withDeleted // 是否包括已删除记录
     * @return
     */
    public List<MemberAddress> list(String memberId, Boolean withDeleted);

    /**
     * 查询所有地址信息
     * @param memberId
     * @return
     */
    public List<MemberAddress> list(String memberId);

    /**
     * 查询默认地址信息
     * @param memberId
     * @return
     */
    public MemberAddress defaultAddress(String memberId);

    /**
     * 查询某个类别下的默认地址信息
     * @param memberId
     * @param type
     * @return
     */
    public MemberAddress defaultAddress(String memberId,String type);

    /**
     * 新增，或者更新地址信息。更新时不更新旧数据，新增一笔再把旧的数据设置成删除
     * @param address
     * @return
     */
    public MemberAddress saveOrUpdateAddress(MemberAddress address);

    /**
     * 删除地址信息（isDelete标记设置1）
     * @param addressId
     * @return
     */
    public Boolean delete(String addressId);

    /**
     * 物理删除地址信息
     * @param addressId
     * @return
     */
    public Boolean physicalDelete(String addressId);

    public MemberAddress findById(String id);


    public String toString();

    //会员中心设置默认地址
    public MemberAddress setDefaultAddress(String memberId,String addressId);


}
